package com.mark.crawler.service;

import com.mark.model.crawler.core.proxy.CrawlerProxy;
import com.mark.model.crawler.pojos.ClIpPool;

import java.util.List;

/**
 * @Description :  爬网程序Ip池服务
 * @Author :  Markburt
 * @CreateDate :  2020/3/7$ 下午 08:56$
 * @UpdateUser :  Markburt
 * @UpdateDate :  2020/3/7$ 下午 08:56$
 * @UpdateRemark :  Project Build
 * @Version :  1.0
 */
public interface CrawlerIpPoolService {


    /**
     * 保存
     * @param clIpPool
     */
     void saveCrawlerIpPool(ClIpPool clIpPool);

    /**
     * 检查ip是否存在
     * @return
     */
     boolean checkExist(String host,int port);

    /**
     * 更新方法
     * @param clIpPool
     */
     void updateCrawlerIpPool(ClIpPool clIpPool);

    /**
     * 查询所有数据
     * @param clIpPool
     * @return
     */
     List<ClIpPool> queryList(ClIpPool clIpPool);

    /**
     * 查询可用的ip列表
     * @param clIpPool
     * @return
     */
     List<ClIpPool> queryAvailabelList(ClIpPool clIpPool);

    /**
     * 删除
     * @param clIpPool
     */
     void delete(ClIpPool clIpPool);

    /**
     * 设置某个ip不可用
     * @param proxy
     * @param errorMsg
     */
     void unAvailabelProxy(CrawlerProxy proxy, String errorMsg);
}
